package cn.dyp.com.automaticcontrolserver.ui;


import android.app.AlertDialog;
import android.app.DialogFragment;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.FragmentActivity;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.widget.Toast;

import cn.dyp.com.automaticcontrolserver.ServerApp;

/**
 * 本项目的基础activity,主要包含了一起常用的组件
 * 
 * @author zongbingwu
 *
 */
public class AppBaseActivity extends FragmentActivity {
	private static final String TAG = "AppBaseActivity";
	// app对象
	protected ServerApp mApp;

	/*
	 * SharedPreferences是以键值对来存储应用程序的配置信息的一种方式，
	 * 它只能存储基本数据类型。一个程序的配置文件仅可以在本应用程序中使用， 或者说只能在同一个包内使用，不能在不同的包之间使用。
	 * 实际上sharedPreferences是采用了XML格式将数据存储到设备中，
	 */
	protected SharedPreferences mSharedPreferences;
	// 屏幕信息对象
	protected DisplayMetrics mDisplayMetrics = new DisplayMetrics();
	// 数据加载等待框
	protected LoadingDialog mLoadDig;

	// 显示提示框
	protected void showToast(String msg) {
		if (msg != null && !msg.equals("")) {
			Toast toast = Toast.makeText(this, msg, Toast.LENGTH_SHORT);
			toast.setGravity(Gravity.CENTER, 0, 0);
			toast.show();
		}
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		mApp = (ServerApp) getApplication();

		mSharedPreferences = PreferenceManager
				.getDefaultSharedPreferences(this);
		// 获取屏幕信息
		getWindowManager().getDefaultDisplay().getMetrics(mDisplayMetrics);
	}

	// 显示“加载等待框”
	public void showLoadDialog() {
		if (mLoadDig == null) {
			mLoadDig = new LoadingDialog();
			mLoadDig.setStyle(DialogFragment.STYLE_NO_FRAME, 0);
		}
		mLoadDig.show(getFragmentManager(), "dialog");
	}

	// 销毁“加载等待框”
	public void dismissLoadDialog() {
		if (mLoadDig != null) {
			mLoadDig.dismiss();
		}
	}

	// 显示带有“确定”按钮的提示框
	public void showAlertDialog(String title, String message) {
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setTitle(title);
		builder.setMessage(message);
		builder.setPositiveButton(getString(android.R.string.ok), null);
		builder.show();
	}
}
